/**
 * Created by qyy on 2018/8/5.
 */

// 页面加载完成后马上执行
(function($)
{
    function BaseUtils()
    {
        var version = '1.0.0';
    }

    $.extend({
        myTime: {
            /**
             * 当前时间戳
             * @return <int>        unix时间戳(秒)
             */
            CurTime: function(){
                return Date.parse(new Date())/1000;
            },
            /**
             * 日期 转换为 Unix时间戳
             * @param <string> 2014-01-01 20:20:20  日期格式
             * @return <int>        unix时间戳(秒)
             */
            DateToUnix: function(string) {
                var f = string.split(' ', 2);
                var d = (f[0] ? f[0] : '').split('-', 3);
                var t = (f[1] ? f[1] : '').split(':', 3);
                return (new Date(
                        parseInt(d[0], 10) || null,
                        (parseInt(d[1], 10) || 1) - 1,
                        parseInt(d[2], 10) || null,
                        parseInt(t[0], 10) || null,
                        parseInt(t[1], 10) || null,
                        parseInt(t[2], 10) || null
                    )).getTime() / 1000;
            },
            /**
             * 时间戳转换日期
             * @param <int> unixTime    待时间戳(秒)
             * @param <bool> isFull    返回完整时间(Y-m-d 或者 Y-m-d H:i:s)
             * @param <int>  timeZone   时区
             */
            UnixToDate: function(unixTime, isFull, timeZone) {
                if (typeof (timeZone) == 'number')
                {
                    unixTime = parseInt(unixTime) + parseInt(timeZone) * 60 * 60;
                }
                var time = new Date(unixTime);
                var ymdhis = "";
                ymdhis += time.getFullYear() + "-";
                ymdhis += (time.getMonth()+1) + "-";
                ymdhis += time.getDate();
                if (isFull === true)
                {
                    ymdhis += " " + time.getHours() + ":";
                    ymdhis += time.getMinutes() + ":";
                    ymdhis += time.getSeconds();
                }
                return ymdhis;
            }
        }
    });

    BaseUtils.prototype.addNavigator = function (basePath)
    {
        var nav = new Array();
        nav.push('<ul class="nav_ul">');
        nav.push('<li id="operation-page" class="unactive_nav"><a href="'+basePath+'pages/operation.jsp">操作管理</a></li>');
        nav.push('<li id="location-page" class="unactive_nav"><a href="'+basePath+'pages/location.jsp">位置</a></li>');
        nav.push('<li id="call-records-page" class="unactive_nav"><a href="'+basePath+'pages/call_history.jsp">通话记录</a></li>');
        nav.push('</ul>');
        $(".nav").html(nav.join(""));
    }

    window.baseUtils = new BaseUtils();
})(jQuery)


/**通用列表**/
function createCommonTableOptions() {
    var oTemp = new Object;
    // 是否允许检索
    oTemp.searching = true;
    // 是否允许排序
    oTemp.ordering = true;
    // 默认排序
    oTemp.order = [[1,'desc']];
    // 是否显示情报 就是"当前显示1/100记录"这个信息
    oTemp.info = true;
    // 是否允许翻页，设成false，翻页按钮不显示
    oTemp.paging = true;
    // 水平滚动条
    oTemp.scrollX = false;
    // 垂直滚动条
    oTemp.scrollY = true;
    // 是否可以选择每页展示的Item数量
    oTemp.lengthChange = true;
    // 选择每页展示数量的选项
    oTemp.lengthMenu = [10, 25, 50, 75, 100];
    // 每页展示数据条数默认值
    oTemp.pageLength = 10;
    //翻页按钮样式
    // numbers:数字
    // simple:前一页，后一页
    // simple_numbers:前一页，后一页，数字
    // full:第一页，前一页，后一页，最后页
    //full_numbers:第一页，前一页，后一页，最后页，数字
    //first_last_numbers:第一页，最后页，数字
    oTemp.pagingType = "simple_numbers";
    // 行样式应用 指定多个的话，第一行tr的class为strip1，第二行为strip2，第三行为strip3.
    // 第四行以后又开始从strip1循环。。。 如果想指定成斑马条状，这里的class必须指定为2个。
    oTemp.stripeClasses = ['line_1', 'line_2'];
    // 自动列宽
    oTemp.autoWidth = true;
    // 是否表示 "processing" 加载中的信息，这个信息可以修改
    oTemp.processing = true;
    // 每次创建是否销毁以前的DataTable,默认false
    oTemp.destroy = false;
    // 控制表格各种信息的表示位置（比较复杂） 默认:lfrtip
    // 具体参考：https://datatables.net/reference/option/dom
    oTemp.dom = "lrtip";
    // language 用来定义展示信息的内容，如加载中显示的提示、当前页显示多少条时的提示、翻页按钮上的文字等等
    oTemp.language = {
        "processing": "翻页中。。。。",
        // 当前页显示多少条
        "lengthMenu": "当前显示 _MENU_ 条记录",
        // _START_（当前页的第一条的序号） ,_END_（当前页的最后一条的序号）,_TOTAL_（筛选后的总件数）,
        // _MAX_(总件数),_PAGE_(当前页号),_PAGES_（总页数）
        "info": "当前第 _PAGE_ 页, 共 _PAGES_ 页, 共 _MAX_ 条数据",
        "infoEmpty": "0条数据",
        "infoFiltered": "",
        // 没有数据的显示（可选），如果没指定，会用zeroRecords的内容
        "emptyTable": "没有记录",
        // 筛选后，没有数据的表示信息，注意emptyTable优先级更高
        "zeroRecords": "没有符合条件的记录",
        // 千分位的符号，只对显示有效，默认就是","  一般不要改写
        //"thousands": "'",
        // 小数点位的符号，对输入解析有影响，默认就是"." 一般不要改写
        //"decimal": "-",
        // 翻页按钮文字控制
        "paginate": {
            "first": "第一页",
            "last": "最后一页",
            "next": "上一页",
            "previous": "下一页"
        },
        "loadingRecords": "正在加载中，请稍后。。。"
    };
    // 默认是false
    // 如果设为true，将只渲染当前也的html，速度会很快，但是通过API就访问不到所有页的数据，有利有弊
    //"deferRender": false,
    // 服务器端处理方式
    oTemp.serverSide = true;
    return oTemp;
}


// 连接websocket
var webSocket;
function initWebsocket(id)
{
    webSocket = new WebSocket("ws://localhost:18081/websocket/{"+id+"}");
    webSocket.session
    webSocket.onmessage = function (event)
    {
        onWebsockMessage(event.data);
    };
}

/**
 * 获取一个5位的随机数
 * @returns {string}
 */
function getRnd5()
{
    // 生成一個5位随机数并向server发送
    var rnd = "";
    for(var i=0;i<5;i++)
        rnd+=Math.floor(Math.random()*10);
    return rnd;
}


